package mac5855.app.controllers;

import java.util.Date;

import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;

import mac5855.app.dao.CategoriaDAO;
import mac5855.app.dao.DAOFactory;
import mac5855.app.dao.JdbcDAOFactory;
import mac5855.app.dao.PerguntaDAO;
import mac5855.app.dao.UsuarioDAO;
import mac5855.app.models.Categoria;
import mac5855.app.models.Pergunta;
import mac5855.app.models.Usuario;

public class PerguntaBean {

	private String titulo;
	private Integer categoriaId;
	private PerguntaDAO dao;
	private Pergunta[] perguntas;
		
	
	
	public Pergunta[] getPerguntas() {
		return perguntas;
	}

	public void setPerguntas(Pergunta[] perguntas) {
		this.perguntas = perguntas;
	}

	public PerguntaBean() {
		categoriaId = 1;
		dao = JdbcDAOFactory.getDAOFactory(1).getPerguntaDAO();
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

	public String getTitulo() {
		return titulo;
	}

	public void setCategoriaId(Integer categoriaId) {
		this.categoriaId = categoriaId;
	}

	public Integer getCategoriaId() {
		return categoriaId;
	}
	
	public String busca() {
		perguntas = dao.findAllByTituloAndCategoria(titulo, categoriaId);
		return "busca";
	}

	public String criar() {
		System.out.println("Executando a logica e redirecionando...");
		HttpServletRequest req = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext()
				.getRequest();

		String userEmail = (String) req.getSession().getAttribute("User");

		System.out.println("Email user:" + userEmail);
		UsuarioDAO usuarioDAO = DAOFactory.getDAOFactory(1).getUsuarioDAO();
		CategoriaDAO categoriaDAO = DAOFactory.getDAOFactory(1).getCategoriaDAO();
		Usuario usuario = usuarioDAO.findByEmail(userEmail);
		System.out.println(usuario);
		Pergunta pergunta = new Pergunta();
		Categoria categoria = new Categoria();
		categoria.setId(1);

		categoria = categoriaDAO.findById(categoriaId);

		pergunta.setTitulo(titulo);
		pergunta.setData(new Date());
		pergunta.setUsuario(usuario);
		pergunta.setCategoria(categoria);
		dao = DAOFactory.getDAOFactory(1).getPerguntaDAO();
		dao.create(pergunta);

		return "criado";
	}

}
